リバースエンジニアリング / マイグレーションとは?りばーすえんじにありんぐ / まいぐれーしょん
リバースエンジニアリングは、稼働している成果物を解析して、そこから設計情報(E-R図や仕様)を復元する行為。マイグレーションは、既存のプログラムやデータを新しい環境・言語・基盤へ移す作業で、機能そのものは原則として変えない。前者は実装から設計へ遡り、後者は同じ機能を別の土台へ載せ替える。
最終更新:2026-10-06
この語が出る過去問を解く →背景
長く使われたシステムは、設計書が更新されないまま改修が積み重なり、動いている実物だけが唯一の正になっていることが多い。作り直すにも移すにも、まず現状の仕様を実物から取り出す必要があり、その手段がリバースエンジニアリングである。取り出した仕様をもとに、機器やOSの保守期限へ合わせて土台を移すのがマイグレーションで、機能を変えないと決めておくことで移行の成否を判定できるようにする。現行構成の分析が要件定義の最初の作業に置かれているのも同じ理由による。
具体例
稼働中のデータベースの定義情報から、モデリングツールでE-R図を生成するのがリバースエンジニアリングにあたる。移行の側では、保守期限が切れたOS上の業務システムをAmazon Web ServicesやMicrosoft Azureへ構成を変えずに載せ替える作業がマイグレーションで、この移し方をリフト&シフトと呼ぶ。
試験での引っ掛け
向きの整理が要点で、実装から設計へ遡るのがリバース、設計から実装へ進むのがフォワード、両者を経て作り直すのがリエンジニアリング。マイグレーションは環境を移すことが目的なので、機能追加を同時に行うと不具合の切り分けができなくなる。他社製品の解析は契約や法で制限される場合がある点も押さえる。
関連用語
出た過去問
出典:令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問25(IPA)
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
正解:ソースプログラムを解析してプログラム仕様書を作る。
要点:リバースエンジニアリングは実装から設計情報を復元すること
リバースエンジニアリングは、既存のソースコードやオブジェクトコードを解析して、設計書や仕様書といった上位の情報を復元する作業である。保守対象のドキュメントが失われている場合などに使われ、復元した仕様を基に作り直すことをリエンジニアリングと呼ぶ。ソースを読みやすく書き換える作業はリファクタリングであり、抽象度が上がらないため該当しない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。